layui.define([ 'form', 'laydate', 'table' ], function(exports) {
    var form = layui.form;
    var laydate = layui.laydate;
    var table = layui.table;
    var contractInfoTable = null;
    var view ={
        init:function(){
            this.initTable();
            this.initSearchForm();
            this.initToolBar();
            window.dataReload = function(){
                Lib.doSearchForm($("#searchForm"),contractInfoTable)
            }
        },
        initTable:function(){
            var data = $("#searchForm").serializeJson();
            contractInfoTable = table.render({
                elem : '#contractInfoTable',
                height : Lib.getTableHeight(0),
                cellMinWidth: 100,
                method : 'post',
                where: data,
                url : Common.ctxPath + '/contract/contractInfo/list.json' // 数据接口
                ,page : Lib.tablePage // 开启分页
                ,limit : 10,
                cols : [ [ // 表头
                    {
                        type : 'checkbox',
                        fixed:'left',
                    },
                    {
                        field : 'invoiceNo',
                        title : '合同号',
                        width : 150,
                    },
                    {
                        field : 'customerName',
                        title : '家长姓名',
                        width : 100,
                    },
                    {
                        field : 'customerPhone',
                        title : '家长手机号',
                        width : 120,
                    },
                    {
                        field : 'customerIdcard',
                        title : '家长身份证',
                        width : 180,
                    },
                    {
                        field : 'studentName',
                        title : '学生姓名',
                        width : 100,
                    },
                    {
                        field : 'studentPhone',
                        title : '学生手机号',
                        width : 120,
                    },
                    {

                        field : 'graduateYear',
                        title : '高考年份',
                        width : 90,
                    },
                    {
                        field : 'qdteacherName',
                        title : '签单老师',
                        width : 100,
                    },
                    {
                        field : 'fwteacherName',
                        title : '服务老师',
                        width : 100,
                    },
                    {
                        field : 'openTicket',
                        title : '发票需求',
                        width : 100,
                        templet: '<div>{{d.openTicket==0?"不开票":"需开票"}}</div>'
                    },
                    {
                        field : 'optDate',
                        title : '签署日期',
                        width : 170,
                    },
                    {
                        field : 'contractAmt',
                        title : '合同总金额',
                        width : 100,
                    },
                    {
                        field : 'payTime',
                        title : '支付时间',
                        width : 170,
                    },
                    {
                        field : 'urlPdf',
                        title : '合同路径',
                        width : 200,
                        templet: '<div> {{# if (d.urlPdf !=undefined ){  }} ' +
                            '<buttont ' +
                            'class="layui-btn layui-btn-xs layui-btn-radius layui-btn-primary"' +
                            'name = "pdfs" '+
                            ' href="{{d.urlPdf}}" >' +
                            '查看合同</button>' +
                            '{{# } }}'+
                            '</div>'
                    },
                    {
                        field : 'htStatus',
                        title : '合同状态',
                        width : 100,
                        templet: '<div>{{# if (d.htStatus== 0) { }}  \n' +
                            '\t新建\n' +
                            '{{# } else if(d.htStatus== 1) { }}  \n' +
                            '\t已审核\n' +
                            '{{# } else if(d.htStatus== 2) { }}  \n' +
                            '\t已签\n' +
                            '{{# } else { }}  \n' +
                            '\t作废\n' +
                            '{{# } }} </div>'
                    },
                    {
                        field : 'fkStatus',
                        title : '付款状态',
                        width : 100,
                        templet: '<div>{{# if (d.fkStatus== 0 || d.fkStatus==null ||  d.fkStatus=="") { }}  \n' +
                            '\t待付款\n' +
                            '{{# } else if(d.fkStatus== 1) { }}  \n' +
                            '\t已付款\n' +
                            '{{# } else { }}  \n' +
                            '\t已确认\n' +
                            '{{# } }}  </div>'
                    },
                    {
                        field : 'fwStatus',
                        title : '服务状态',
                        width : 100,
                        templet: '<div>{{# if (d.fwStatus == 0 || d.fwStatus == null ||  d.fwStatus=="") { }}  \n' +
                            '\t未开启\n' +
                            '{{# } else if(d.fwStatus== 1) { }}  \n' +
                            '\t进行中\n' +
                            '{{# } else { }}  \n' +
                            '\t已结束\n' +
                            '{{# } }}  </div>'
                    },
                    {
                        field : 'tkStatus',
                        title : '退款状态',
                        width : 100,
                        templet: '<div>{{# if (d.tkStatus== 0 || d.tkStatus == null ||  d.tkStatus=="" ) { }}  \n' +
                            '\t待申请\n' +
                            '{{# } else if(d.tkStatus== 1) { }}  \n' +
                            '\t待审核\n' +
                            '{{# } else if(d.tkStatus== 2) { }}  \n' +
                            '\t退款中\n' +
                            '{{# } else if(d.tkStatus== 3) { }}  \n' +
                            '\t已退款\n' +
                            '{{# } else { }}  \n' +
                            '\t不退款\n' +
                            '{{# } }}  </div>'
                    },
                    {
                        field : 'createDate',
                        title : '录单日期',
                        width : 170,
                    },
                    {
                        field : 'remark',
                        title : '服务备注',
                        width : 300,
                    }
                ] ]

            });
            table.on('sort(contractInfoTable)', function(obj){ //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
                console.log(obj.field); //当前排序的字段名
                console.log(obj.type); //当前排序类型：desc（降序）、asc（升序）、null（空对象，默认排序）
                console.log(this); //当前排序的 th 对象

                //尽管我们的 table 自带排序功能，但并没有请求服务端。
                //有些时候，你可能需要根据当前排序的字段，重新向服务端发送请求，从而实现服务端排序，如：
                table.reload('contractInfoTable', {
                    initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。 layui 2.1.1 新增参数
                    ,where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                        field: obj.field //排序字段
                        ,order: obj.type //排序方式
                    }
                });
            });
            table.on('checkbox(contractInfoTable)', function(obj){
                var contractInfo = obj.data;
                if(obj.checked){
                    //按钮逻辑Lib.buttonEnable()
                }else{

                }
            })
        },

        initSearchForm:function(){
            Lib.initSearchForm( $("#searchForm"),contractInfoTable,form);
        },
        initToolBar:function(){
            toolbar = {
                add : function() { // 获取选中数据
                    var url = "/contract/contractInfo/add.do";
                    Common.openDlg(url,"ContractInfo管理>新增");
                },
                create : function() { // 跳转到获取创建订单页面
                    var url = "/contract/createcontract/create.do";
                    Common.openDlg(url,"ContractInfo管理>创建订单");
                },
                serviceList : function() { // 跳转到服务详情页面
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }
                    var url = "/contract/createcontract/serviceList.do?contractId="+data.contractId;
                    Common.openDlg(url,"ContractInfo管理>服务详情");
                },
                edit : function() { // 获取选中数目
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }
                    var url = "/contract/contractInfo/edit.do?contractId="+data.contractId;
                    Common.openDlg(url,"ContractInfo管理>"+data.contractId+">编辑");
                },
                del : function() {
                    var studentNames = "<br>";
                    var data = Common.getMoreDataFromTable(table,"contractInfoTable");

                    for (var i in  data){
                        studentNames += data[i].studentName +"<br>";
                    }
                    var ids = Common.concatBatchId(data, "contractId");

                    Common.openConfirm("确定要删除"+studentNames+"的合同吗？",function () {
                        Common.post("/contract/contractInfo/delete.json",{"ids": ids},null);
                        Common.info("删除成功！");
                        dataReload();
                    });

                },
                confirmPay:function () { // 获取选中数目
                    var data = Common.getMoreDataFromTable(table, "contractInfoTable")
                    //判断选中的内容有没有已经付款的
                    var iserror = false;
                    for (var i in data){
                        console.log(data[i]);
                        if (data[i].fkStatus == 2){
                            iserror = true;
                        }
                    }
                    if (iserror){
                        layer.alert("已付款的订单不能再次确定收款")
                        return;
                    }
                    if (data == null) {
                        return;
                    }
                    Common.openConfirm("确认要把合同改变为已确认付款状态吗？", function () {
                        var ids = Common.concatBatchId(data, "contractId");
                        Common.post("/contract/contractInfo/confirm.json", {"ids": ids}, function () {
                            Common.info("改变状态成功");
                            dataReload();
                        })
                    })
                },
                //通知签署
                sendMessages :function () {
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }

                    Common.openConfirm("确认发送短信?",function(){

                        Common.post("/invoice/sendMessages.json",
                            {"invoice_no":data.invoiceNo,"Parentphone":data.customerPhone,"ParentName":data.customerName},null);
                        dataReload();
                    });


                }
                ,
                applyRefund:function(){
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }
                    if(data.fkStatus!=2){
                        Common.info("未确认收款的合同不能申请退款")
                        return;
                    }
                    Common.openConfirm("确认申请退款?",function(){
                        Common.post("/contract/contractInfo/applyRefund.json",{"contractId":data.contractId},null);
                        dataReload();
                    });

                },
                auditRefund:function(){
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }
                    if(data.tkStatus!=1){
                        Common.info("未申请退款的合同不能审核")
                        return;
                    }
                    Common.openConfirm("确认审核通过?",function(){
                        Common.post("/contract/contractInfo/auditRefund.json",{"contractId":data.contractId},null);
                        dataReload();
                    });

                },
                confirmRefund:function(){
                    var data = Common.getOneFromTable(table,"contractInfoTable");
                    if(data==null){
                        return ;
                    }
                    if(data.tkStatus!=2){
                        Common.info("未审核合同不能确认退款")
                        return;
                    }
                    Common.openConfirm("确认退款?",function(){
                        Common.post("/contract/contractInfo/confirmRefund.json",{"contractId":data.contractId},null);
                        dataReload();
                    });

                }
            };
            $('.ext-toolbar').on('click', function() {
                var type = $(this).data('type');
                toolbar[type] ? toolbar[type].call(this) : '';
            });
        }
    }
    exports('index',view);

});